package chapter02;

import java.util.Arrays;

public class PlusOne66 {
    /**
     * 加一
     * 1)如果数组末尾没有9 例如[1,2,3]，那么我们直接将末尾的数加一 得到 [1,2,4]并返回
     * 2)如果数组末尾有多个9 例如[1,2,3,9,9] 那么我们只需要找出从末尾开始的第一个不为9的元素 将该元素加一
     *   得到[1,2,4,9,9] 随后将末尾的9全部置零 得到[1,2,4,0,0]并返回。
     * 3)如果数组所有元素都是9 例如[9,9,9,9,9] 那么答案为 [1,0,0,0,0,0]
     *   我们只需要构造一个长度比digits多1的新数组 将首元素置为1 其余元素置为0即可
     */
    public int[] plusOne(int[] digits){
        for(int i=digits.length-1;i>=0;i--){
            if(digits[i]!=9){
                digits[i]=digits[i]+1;
                return digits;
            }else{
                digits[i]=0;
            }
        }
        int[] ans=new int[digits.length+1];
        ans[0]=1;
        return ans;
    }
}
